In the digital age, organizations increasingly rely on digitally stored data. To protect against data loss, organizations may use replication technologies to replicate data from a primary storage device to a secondary storage device from which the data may be backed up and later restored. To improve storage system performance, organizations may use caching technologies to cache reads from and/or writes to a relatively slow primary storage device in faster cache memory.
Unfortunately, attempting to (1) protect against data loss and (2) improve storage system performance by combining common replication solutions with common caching solutions may be problematic because certain caching technologies may cause the data stored within a storage device to be point-in-time inconsistent. For example, a typical caching solution may implement a write-back policy to cache writes to a storage device. While implementing write-back caching, the caching solution may selectively store some of the writes destined for the storage device to cache memory instead of to the storage device. By selectively storing writes to cache memory instead of to the storage device, the caching solution may cause the data within the storage device to be point-in-time inconsistent. If a replication solution then replicates this inconsistent data to a secondary storage device, the data within the secondary storage device may also be point-in-time inconsistent. For this reason, any backup of the storage device that is created from the data within the secondary storage device may also be point-in-time inconsistent and potentially unusable. Accordingly, the instant disclosure addresses a need for additional and improved systems and methods for enabling write-back caching and replication at different abstraction layers.